package com.yan.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yan.domain.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yan.domain.UserAuthAuditRecord;
import com.yan.dto.UserDto;
import com.yan.model.RegisterParam;
import com.yan.model.UpdatePhoneParam;
import com.yan.model.UserAuthForm;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface UserService extends IService<User>{


    Page<User> findByPage(Page<User> page, String mobile, Long userId, String userName, String realName, Integer status);

    Page<User> getDirectInvites(Page<User> page, Long userId);

    Page<User> findByPage(Page<User> page, String mobile, Long userId, String userName, String realName, Integer status, String reviewStatus);

    void updateUserAuthStatus(Long id, Byte authStatus, Long authCode, String remark);

    boolean identifyVerify(Long id, UserAuthForm userAuthForm);


    void authUser(Long id, List<String> imgs);

    boolean updatePhone(Long userId, UpdatePhoneParam updatePhoneParam);

    boolean checkNewPhone(String mobile, String countryCode);

    Map<Long, UserDto> getBasicUsers(List<Long> ids, String userName, String mobile);

    boolean register(RegisterParam registerParam);
}
